Amazon Machine LearningにTwitter Archiveを突っ込んで分析させてみる
はじめに
AWSに機械学習サービスが登場!ということで大きな話題となったAmazon Machine Learning(Amazon ML)。早速本ブログでも複数の記事がアップされています。
- 【新サービス】Amazon Machine Learning(機械学習サービス) がAWS Summits 2015 San Francisco で発表されました。 #AWSSummit
- 【新サービス】Amazon Machine Learningを試してみた #AWSSummit #AmazonML
- 【新サービス】Amazon Machine LearningのAWS CLI コマンドを確認してみた #AWSSummit #AmazonML
だがしかし、悲しきかな、僕は統計にも分析にも解析にも機械学習にも知見がありません。悔しい!でもAmazon MLを触ってみたい!
ということで、とりあえずTwitter ArchiveをAmazon MLに突っ込んだらどんなことになるのか、やってみました!
やってみた
入力データのS3へのアップロード
まずは材料です。自分のTwitterアカウントで、Twitter Archive(過去の全ツイート)を入手します。入手したTwitter ArchiveはCSV形式なので、それをそのままS3にアップロードしておきます。
Amazon MLの設定開始
では早速Amazon MLの管理画面にアクセスし、[Get started]ボタンをクリックします。
[Standard setup]の[Launch]ボタンをクリックします。
入力データの設定
[S3 location]で先ほどアップロードしたS3上のCSVファイルを指定し、[Verity]ボタンをクリックします。
[S3 permissions]画面が表示されます。[Yes]ボタンをクリックして、S3にAmazon MLからのアクセス権限を付与します。
Validationができた旨のメッセージが表示されるので、[Continue]ボタンをクリックします。
次にスキーマの設定です。Twitter Archive のCSVは1行目がヘッダ行になっているので、以下の画面のチェック項目を[Yes]にします。他は、Amazon MLが自動で型推測をしてくれていて、特に変更すべきことはありません。そのまま[Continue]ボタンをクリックします。
次に機械学習モデルの評価と構築を行う為の訓練変数を指定します。が、今回は何かの値を予測したりしたいわけじゃないので、適当にtweet_idをTargetにして、[Continue]ボタンをクリックします。このデータにGeoIDが入ってたりすると、バッチ予測するの面白そうなんですけどね。
次のROW IDの設定は行わず、Noのまま[Review]ボタンをクリック。
入力データについての確認画面が表示されるので、そのまま[Continue]ボタンをクリックします。
機械学習モデルの設定
そのまま機械学習モデルの設定画面になります。デフォルト値のまま[Review]ボタンをクリックします。
機械学習モデルについての確認画面が表示されるので、[Finish]ボタンをクリックします。
すると機械学習モデルのステータスが[Pending]になります。しばらく時間が掛かるので待機。
完了すると、ステータスが[Completed]になります。
結果を確認してみる
左上のメニューから[Datasources]をクリックします。
データソースの一覧画面になります。3つ表示されているのは、
- データ全体(そのもの)
- 訓練用データ(全体の70%)
- 評価用データ(全体の30%)
です。訓練とか評価とか、それぞれの意味は理解していませんが...今回はデータ全体をクリックしてみます。
データレポート画面が表示されます。左ペインの[Attributes]に、入力データの各項目が型毎に分類されています。Textをクリックすると"text"(Tweet内容)と"timestamp"の2つが表示されています。"text"の一番右、[Most prominent words]をクリックします。
すると"text"の分析された結果が表示されます。これは[Ranking]でソートされています。このRankingは[Word prominence]のポイント順になっているようで、突出した使われ方をしているものになります。1位が「http」で、いろいろなWebリンクの共有によるものでしょう。2位が「札幌駅」、3位が「sapporo」と、北海道民らしい値がランクインしています。
次に[Count]でソートしてみます。1位は変わらずですが、2位が「watching」になりました。ただしRankingは774位となっているので、Amazon MLの分析結果としては重要度が低いという扱いをしたようです。
ということで、とりあえず、Amazon MLを触ってみました!
さいごに
この内容は別にAmazon MLである必要性はなくて、Redshift + Tableauで十分可能なものと思います。Amazon MLを使うメリットは、この先のバッチ予測にこそあるからです。どうにしかしてその辺の知識を身に付けたいものだなぁと思っていますので、お勧めの書籍などがあれば是非教えてください!